package cn.zzq.userscenter.outer.controller;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import cn.zzq.userscenter.common.controller.BaseController;
import cn.zzq.userscenter.common.util.ConstatFinalUtil;
import cn.zzq.userscenter.outer.service.IOuterService;

/**
 * 对外提供json格式
 * @author WangshSxt
 *
 */
@Controller
@RequestMapping("/outer/json")
public class JsonOuterController extends BaseController
{
	@Resource
	private IOuterService outerService;
	
	/**
	 * 接口文档,要返回json字符串
	 * @return
	 */
	@RequestMapping(value = "/verfiyToken",produces="text/html;charset=UTF-8")
	@ResponseBody
	public String verfiyToken(String json)
	{
		ConstatFinalUtil.SYS_LOGGER.info("--verfiyToken--");
		JSONObject resultJSON = new JSONObject() ; 
		
		/* 处理参数 */
		if(json == null)
		{
			json = "" ; 
		}
		
		if(!"".equalsIgnoreCase(json))
		{
			/*
			 * 重要,重要,重要
			 * 版本????考虑版本
			 * 
			 * */
			JSONObject reqJSON = new JSONObject() ;
			/* 传了上行参数,解析 */
			try
			{
				reqJSON = (JSONObject) JSON.parse(json);
				
				try
				{
					/* 取到版本 */
					String version = reqJSON.get("version") + "";
					if("1".equalsIgnoreCase(version))
					{
						/* 第一个协议版本 */
						resultJSON = this.outerService.verfiyToken01Service(reqJSON);
					}/*else if("2".equalsIgnoreCase(version))
					{
						 第一个协议版本 
						resultJSON = this.outerService.verfiyToken02Service(reqJSON);
					}*/else
					{
						/* 版本号不正确 */
						resultJSON.put("code", "11");
						resultJSON.put("info", ConstatFinalUtil.INFO_JSON.get("11") + "");
					}
				} catch (Exception e)
				{
					resultJSON.put("code", "13");
					resultJSON.put("info", ConstatFinalUtil.INFO_JSON.get("13") + ";" + e.toString());
				}
			} catch (Exception e)
			{
				/* 上传的json数据格式不正确 */
				resultJSON.put("code", "10");
				resultJSON.put("info", ConstatFinalUtil.INFO_JSON.get("10") + ";" + e.toString());
			}
		}else
		{
			/* 请上传上行参数 */
			resultJSON.put("code", "9");
			resultJSON.put("info", ConstatFinalUtil.INFO_JSON.get("9") + "");
		}
		return resultJSON.toJSONString();
	}
}
